1. Field of the Invention
The present invention relates to a request control apparatus and request control method for fetching requests from ports and inputting them to a pipeline.
2. Description of the Related Art
Conventionally, there has been known a request control apparatus that fetches requests set in ports that are provided in parallel, and inputs the requests to a pipeline. The request control apparatus fetches in order requests that are input to respective ports by a processing device, such as a central processing unit (CPU), and inputs the fetched requests to the pipeline in the order of the fetch.
However, the request control apparatus has a risk of hang-up when the number of ports is more than the number of requests that can be simultaneously input to the pipeline (hereinafter, “pipeline length”). For example, suppose the number of the ports is eight, the pipeline length is four, and requests set in the ports are to be input to the pipeline on a first-come, first-served basis. In such case, four requests are input to the pipeline on a first-come, first-served basis, and when a requirement for processing of the four requests on the pipeline is imposed that processing of a specific request remaining in a port has been completed, if the four requests are repeatedly retried on the pipeline, pipeline processing hangs up.
To solve such problem, it can be conceivable to control relation between the number of the ports and the pipeline length. For example, it is conceivable to set the number of ports to equal to or fewer than the number of requests that can be simultaneously input to the pipeline; however, reduction of the number of ports is not preferable in terms of processing efficiency. It is also conceivable to cope with the problem by setting a longer pipeline length; however, it is not preferable because a delay may occur in pipeline processing.
For this reason, various request control methods have been proposed that are configured to cope with the problem by changing an order of fetching requests from the ports. For example, there is a technology of rearranging a request that is turned to a retry matter on a pipeline to the last place of a fetching order. Moreover, there is a technology of advancing in a fetching order a request of which processing is required to be completed prior to processing of another request regardless of an arrival order.
However, the conventional technology for rearranging the request order can produce an effect only when dealing with requests acceptable for overtaking between the requests. In other words, the conventional technology may lead to reduction in performance of request processing when a partial overtaking inhibition is imposed among requests to be processed.
For this reason, it is a challenge how to implement a request control method that does not cause hang-up or reduction in performance of request processing, even when a partial overtaking inhibition is imposed among the requests to be processed.